The present invention relates to data processing used for a full-color printing related equipment such as a printer, a video printer, or a scanner, an image processor for forming computer graphic images or a display device such as a monitor. More specifically, the invention relates to a color conversion device and a color conversion method for performing color conversion for image data of three colors of red, green and blue in accordance with the equipment used.
Color conversion in printing is an indispensable technology for compensating deterioration of image quality due to color mixing property due to the fact that the ink is not of a pure color, or the non-linearity (in the hue) of the image-printing, in order to output a printed image with a high color reproducibility. Also, in a display device such as a monitor or the like, color conversion is performed in order to output (display) an image having desired color reproducibility in accordance with conditions under which the device is used or the like when an inputted color signal is to be displayed.
Conventionally, two methods have been available for the foregoing color conversion: a table conversion method and a matrix calculation method.
In the table conversion method, image data of red, green and blue (referred to “R, G and B”, hereinafter) are inputted to obtain image data of R, G and B stored beforehand in a memory such as ROM or complementary color data of yellow, magenta and cyan (referred to as “Y, M and C”, hereinafter). Since an arbitrary conversion characteristic can be employed, this table conversion method has an advantageous in that color conversion can be effected with good color reproducibility.
However, in a simple structure for storing data for each combination of image data, a large-capacity memory of about 400 Mbit must be used. For example, even in the case of a compression method for memory capacity disclosed in Japanese Patent Kokai Publication No. S63-227181, memory capacity is about 5 Mbit. Therefore, a problem inherent in the table conversion system is that since a large-capacity memory is necessary for each conversion characteristic, it is difficult to implement the method by means of an LSI, and it is also impossible to deal with changes in the condition under which the conversion is carried out.
On the other hand, in the case of the matrix calculation method, for example, for obtaining printing data of Y, M and C from image data of R, G and B, the following formula (42) is used as a basic calculation formula.                               [                                                    Y                                                                    M                                                                    C                                              ]                =                              (            Aij            )                    ⁡                      [                                                            R                                                                              G                                                                              B                                                      ]                                              (        42        )            
Here, i=1 to 3, and j=1 to 3.
However, by the simple linear calculation of the formula (42), it is impossible to provide a good conversion characteristic because of a non-linearity of an image-printing or the like.
A method has been proposed for providing a conversion characteristic to improve the foregoing characteristic. This method is disclosed in Japanese Patent Application Kokoku Publication H2-30226, directed to “color correction calculation device, and employs a matrix calculation formula (43) below.                               [                                                    Y                                                                    M                                                                    C                                              ]                =                              (            Dij            )                    ⁡                      [                                                                                                    ⁢                    R                    ⁢                                                                                                                                                                                                       ⁢                    G                    ⁢                                                                                                                                                                                                       ⁢                    B                    ⁢                                                                                                                                                                                                       ⁢                                          R                      *                      G                                                                                                                                                            ⁢                                          G                      *                      B                                                                                                                                                            ⁢                                          B                      *                      R                                                                                                                                                            ⁢                                          R                      *                      R                                                                                                                                                            ⁢                                          G                      *                      G                                                                                                                                                            ⁢                                          B                      *                      B                                                                                                                                                            ⁢                    N                    ⁢                                                                                                                                       ]                                              (        43        )            
Here, N is a constant, i=1 to 3, and j=1 to 10.
In the foregoing formula (43), since image data having a mixture of an achromatic component and a color component is directly used, mutual interference occur in computation. In other words, if one of the coefficients is changed, influence is given to the components or hues other than the target component or hue (the component or hue for which the coefficient is changed). Consequently, a good conversion characteristic cannot be realized.
A color conversion method disclosed in Japanese Patent Application Kokai Publication H7-170404 is a proposed solution to this problem. FIG. 39 is a block circuit diagram showing the color conversion method for conversion of image data of R, G and B into printing data of C, M and Y, disclosed in Japanese Patent Application Kokai Publication H5-260943. A reference numeral 100 denotes a complement calculator; 101, a minimum and maximum calculator; 102, a hue data calculator; 103, a polynomial calculator; 104, a matrix calculator; 105, a coefficient generator; and 106, a synthesizer.
Next, the operation will be described. The complement calculator 100 receives image data R, G and B, and outputs complementary color data Ci, Mi and Yi which have been obtained by determining 1's complements. The minimum and maximum calculator 101 outputs a maximum value β and a minimum value α of this complementary color data and an identification code S for indicating, among the six hue data, data which are zero.
The hue data calculator 102 receives the complementary color data Ci, Mi and Yi and the maximum and minimum values β and α, and outputs six hue data r, g, b, y, m and c which are obtained by executing the following subtraction: r=β−Ci, g=β−Mi, b=β−Yi, y=Yi−α, m=Mi−α, and c=Ci−α. Here, among the six hue data, at least two are of a value “zero.”
The polynomial calculator 103 receives the hue data and the identification code S, selects, from r, g and b, two data Q1 and Q2 which are not zero and, from y, m and c, two data P1 and P2 which are not zero. Based on these data, the polynomial calculator 103 computes polynomial data: T1=P1*P2, T3=Q1*Q2, T2=T1/(P1+P2), and T4=T3/(Q1+Q2), and then outputs the results of the calculation.
The coefficient generator 105 generates calculation coefficients U(Fij) and fixed coefficients U(Fij) for the polynomial data based on information regarding the identification code S. The matrix calculator 104 receives the hue data y, m and c, the polynomial data T1 to T4 and the coefficients U, and outputs a result of the following formula (44) as color ink data C1, M1 and Y1.                               [                                                    C1                                                                    M1                                                                    Y1                                              ]                =                                            (              Eij              )                        ⁡                          [                                                                    c                                                                                        m                                                                                        y                                                              ]                                +                                    (              Fij              )                        ⁡                          [                                                                                                                  c                        *                        m                                            ⁢                                                                                                                                                                                                                               m                        *                        y                                            ⁢                                                                                                                                                                                                                               y                        *                        c                                            ⁢                                                                                                                                                                                                                               r                        *                        g                                            ⁢                                                                                                                                                                                                                               g                        *                        b                                            ⁢                                                                                                                                                                                                                               b                        *                        r                                            ⁢                                                                                                                                                                                                                                                                                     c                            *                                                          m                              /                                                              (                                                                  c                                  +                                  m                                                                )                                                                                                                                                                                                                                      m                            *                                                          y                              /                                                              (                                                                  m                                  +                                  y                                                                )                                                                                                                                                                                                                                      y                            *                                                          c                              /                                                              (                                                                  y                                  +                                  c                                                                )                                                                                                                                                                                                                                      r                            *                                                          g                              /                                                              (                                                                  r                                  +                                  g                                                                )                                                                                                                                                                                                                                      g                            *                                                          b                              /                                                              (                                                                  g                                  +                                  b                                                                )                                                                                                                                                                                                                                      b                            *                                                          r                              /                                                              (                                                                  b                                  +                                  r                                                                )                                                                                                                                                                                                                    ]                                                          (        44        )            
The synthesizer 106 adds together the color ink data C1, M1 and Y1 and data α which is the achromatic data, and outputs printing data C, M and Y. Accordingly, the following formula (45) is used for obtaining printing data.                               [                                                    C                                                                    M                                                                    Y                                              ]                =                                            (              Eij              )                        ⁡                          [                                                                    c                                                                                        m                                                                                        y                                                              ]                                +                                    (              Fij              )                        ⁡                          [                                                                                                                  c                        *                        m                                            ⁢                                                                                                                                                                                                                               m                        *                        y                                            ⁢                                                                                                                                                                                                                               y                        *                        c                                            ⁢                                                                                                                                                                                                                               r                        *                        g                                            ⁢                                                                                                                                                                                                                               g                        *                        b                                            ⁢                                                                                                                                                                                                                               b                        *                        r                                            ⁢                                                                                                                                                                                                                                                                                     c                            *                                                          m                              /                                                              (                                                                  c                                  +                                  m                                                                )                                                                                                                                                                                                                                      m                            *                                                          y                              /                                                              (                                                                  m                                  +                                  y                                                                )                                                                                                                                                                                                                                      y                            *                                                          c                              /                                                              (                                                                  y                                  +                                  c                                                                )                                                                                                                                                                                                                                      r                            *                                                          g                              /                                                              (                                                                  r                                  +                                  g                                                                )                                                                                                                                                                                                                                      g                            *                                                          b                              /                                                              (                                                                  g                                  +                                  b                                                                )                                                                                                                                                                                                                                      b                            *                                                          r                              /                                                              (                                                                  b                                  +                                  r                                                                )                                                                                                                                                                                                                    ]                                +                      [                                                            α                                                                              α                                                                              α                                                      ]                                              (        45        )            
The formula (45) is a general formula for a group of pixels.
FIGS. 40A to 40F, which are schematic diagrams, show relations between six hues of red (R), green (G), blue (B), yellow (Y), cyan (C) and magenta (M) and hue data y, m, c, r, g and b, and each hue data relates to or extends to cover three hues.
FIGS. 41A to 41F, which are schematic diagrams, show relations between the six hues and product terms m*y, r*g, y*c, g*b, c*m and b*r, and it is seen that each hue data relates to specified hue among the six hues.
Thus, each of the six product terms m*y, c*m, y*c, r*g, g*b and b*r relates to only one specific hue among the six hues of red, blue, green, yellow, cyan and magenta. In other words, only m*y is an effective product term for red; c*m for blue; y*c for green; r*g for yellow; g*b for cyan; and b*r for magenta.
Also, each of the six fraction terms m*y/(m+y), c*m/(c+m), y*c/(y+c), r*g/(r+g), g*b/(g+b) and b*r/(b+r) in the formula (45) relates to only one specific hue among the six hues.
As apparent from the foregoing, according to the color conversion method shown in FIG. 39, by changing coefficients for the product terms and the fraction terms regarding the specific hue, only the target hue can be adjusted without influencing other hues.
Each of the foregoing product terms is determined by a second-order computation for chroma, and each of the fraction terms is determined by a first-order computation for chroma. Thus, by using both of the product terms and the fraction terms, the non-linearity of an image-printing for chroma can be corrected.
However, even in this color conversion method, the problems of the non-linearity of image-printing for hues remains to be solved. If an area in a color space occupied by specific hues is to be expanded or reduced, according to the user's preference, e.g., specifically, if expansion or reduction of an area of red in a color space including magenta, red and yellow is desired, the conventional color conversion method of the matrix computation type could not meet with such a desire.
The problems of the conventional color conversion method or color conversion device are summarized as follows. Where the color conversion device is of a table conversion method employing a memory such as ROM, a large-capacity memory is required, and a conversion characteristic cannot be flexibly changed. Where the color conversion device uses a matrix calculation method, although it is possible to change only a target hue, it is not possible to correct the inter-hue area between adjacent ones of the six hues of red, blue, green, yellow, cyan and magenta, good conversion characteristics cannot be realized throughout the entire color space.